Nội dung mô hình thác nước Mô_hình_thác_nước

Vào năm 1970 trong bài báo của mình, Royce đã mô tả ở dạng khái niệm cái mà ngày nay được công nhận với tên gọi "mô hình thác nước", đã bàn luận về những nhược điểm của mô hình này. Trong đó ông cũng chỉ ra rằng mô hình này có thể sẽ được tu sửa thành mô hình lặp.

Mô hình Royce nguyên gốc có các pha theo đúng thứ tự sau:

  1. Xác định yêu cầu
  2. Thiết kế
  3. Xây dựng (hay "triển khai", "mã hóa", "viết mã")
  4. Liên kết
  5. Kiểm thử và Chỉnh sửa (hay «kiểm nghiệm»)
  6. Cài đặt
  7. Bảo trì

Theo mô hình thác nước, người phát triển phải thực hiện từng giai đoạn theo thứ tự nghiêm ngặt. Trước hết, giai đoạn "xác định yêu cầu" phải được hoàn tất, kết quả nhận được sẽ là danh sách các yêu cầu đối với phần mềm. Sau khi các yêu cầu đã hoàn toàn được xác định, sẽ chuyển sang pha thiết kế, ở pha này người ta sẽ tạo ra các tài liệu dành cho lập trình viên, trong đó mô tả chi tiết các phương pháp và kế hoạch thực hiện các yêu cầu đã được làm rõ ở pha trước. Sau khi pha thiết kế hoàn tất, lập trình viên sẽ triển khai thực hiện (mã hóa, viết mã) đồ án họ nhận được. Giai đoạn tiếp theo là liên kết các thành phần riêng lẻ đã được những đội lập trình viên khác nhau thực hiện thành một sản phẩm hoàn chỉnh. Sau khi pha triển khai và pha liên kết hoàn tất, sẽ diễn ra pha kiểm thử và chỉnh sửa sản phẩm; ở giai đoạn này những khiếm khuyết ở các giai đoạn trước đó sẽ bị loại bỏ. Sau đó, sản phẩm phần mềm sẽ được đưa vào sử dụng; phần bảo trì phần mềm cũng sẽ được bảo đảm bằng cách bổ sung chức năng mới và loại trừ các lỗi.

Như vậy, mô hình thác nước ngụ ý rằng, việc chuyển từ pha phát triển này sang pha khác sẽ diễn ra chỉ sau khi các pha trước đó đã kết thúc hoàn toàn thành công, và không thể quay lui về pha trước đó hay nhảy vượt pha.

Tuy nhiên, tồn tại một số mô hình thác nước biến thể (bao gồm cả mô hình của Royce), trong đó quy trình phát triển đã được mô tả ở trên bị biến đổi không nhiều hoặc cũng có thể bị biến đổi đáng kể.

Tài liệu tham khảo

WikiPedia: Mô_hình_thác_nước http://www.business-esolutions.com/islm.htm http://www-128.ibm.com/developerworks/rational/lib... http://www.ibm.com/developerworks/rational/library... http://www.it-director.com/technology/productivity... http://www.cs.umd.edu/class/spring2003/cmsc838p/Pr... http://users.ece.utexas.edu/~perry/education/SE-In... http://tarmo.fi/blog/2005/09/09/dont-draw-diagrams... http://cost.jsc.nasa.gov/PCEHHTML/pceh.htm http://archive.is/20130102112959/http://articles.t... http://web.archive.org/web/20050310133243/http://a...